home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-Sensation: Golden Games / Amiga CD-Sensation - Ausgabe 2 - Golden Games (1996)(GTI - Schatztruhe)(DE)[!].iso / Various / CRobots / killer.r < prev    next >
Text File  |  1990-04-16  |  3KB  |  113 lines

  1. CRobots, Inc.
  2. John Smolin
  3. /* KILLER.R    by John Smolin  */
  4. /* Combination of Leader (standing stiill) and B2  */
  5. /* Eventually there will be one which moves instead of corner-sitting  */
  6.  
  7. int range, x, orange, ox, dir;
  8.  
  9. main()
  10. {
  11.    drive(270,100);
  12.    x = -239;
  13.    dir = 90;
  14.    while(loc_y() > 35);
  15.    drive(90,0);
  16.    while(speed() > 49);
  17.    drive(0,100);
  18.    while(loc_x() < 965);
  19.    drive(100,0);
  20.    while(damage() < 55)
  21.    {
  22.        x += 329;
  23.        while(!range && (damage() < 55))
  24.        {
  25.            if (range = scan(x += 15, 8))
  26.            {
  27.                x = killit(x);
  28.            }
  29.            else if (x > 180)
  30.            {
  31.                x = 80;
  32.            }
  33.        }
  34.        while(1)
  35.        {
  36.            if (dir == 450)
  37.            {
  38.                dir = 90;
  39.            }
  40.            if (((dir == 90) && (loc_y() > 920)) || ((dir == 270) && (loc_y()
  41.                < 80)) || ((dir == 0) && (loc_x() > 920)) || ((dir == 180) &&
  42.                (loc_x() < 80)))
  43.            {
  44.                drive(dir += 90, 0);
  45.                while(speed() > 49);
  46.                drive(dir, 100);
  47.            }
  48.            if (speed() < 50)
  49.            {
  50.                drive(dir, 100);
  51.            }
  52.            if ((x > dir + 179) && !range)
  53.            {
  54.                x = dir - 25;
  55.            }
  56.            if (range && (range < 701))
  57.            {
  58.                x += 5 - (scan(x - 5, 5) != 0) * 10;
  59.                x += 3 - (scan(x - 3, 3) != 0) * 6;
  60.                orange = range;
  61.                if ((range = scan(x, 10)) > 40)
  62.                {
  63.                    cannon(x, range + (range - orange + cos(x - dir) / 2000)
  64.                        * range / 325);
  65.                }
  66.                else
  67.                {
  68.                    cannon(x, 46);
  69.                }
  70.            }
  71.            else
  72.            {
  73.                range = scan(x += 19, 10);
  74.            }
  75.        }
  76.    }
  77. }
  78.  
  79. killit(x)
  80. {
  81.    cannon(x, range);
  82.    while(range && (range < 700) && (damage() < 55))
  83.    {
  84.        ox = x;
  85.        orange = range;
  86.        x += 4 - (scan(x - 4, 4) != 0) * 8;
  87.        x += 2 - (scan(x - 2, 2) != 0) * 4;
  88.        range = scan(x, 10);
  89.        if (range > 150)
  90.        {
  91.            x += 1 - (scan(x - 1, 1) != 0) * 2;
  92.            if (range)
  93.            {
  94.                cannon(x + (x - ox) * range / 275, range + (range - orange)
  95.                    * range / 275);
  96.            }
  97.        }
  98.        else
  99.        {
  100.            if (range < 41 && range)
  101.            {
  102.                range = 41;
  103.            }
  104.            if (range)
  105.            {
  106.                cannon(x, range);
  107.            }
  108.        }
  109.    }
  110.    range = 0;
  111.    return(x);
  112. }
  113.